package memento;

import java.util.List;

import logica.Atributo;
import logica.AtributoRepetidoException;
import logica.EntidadRol;
import logica.Relacion;
import logica.RelacionException;
import logica.SinNombreException;
import logica.TipoDeRelacion;

public class MementoRelacionLogica extends Memento {

	private List<Atributo> atributos;
	private List<EntidadRol> entidRoles;
	private TipoDeRelacion tipo;
	private String nombre;

	public MementoRelacionLogica(Relacion guardable)
	{
		super(guardable);
	
		this.atributos = guardable.getAtributos();
		this.entidRoles = guardable.getEntidades();
		this.nombre = guardable.getNombre();
		this.tipo = guardable.getTipo();
	}

	@Override
	public void cargarMemento() 
	{
		Relacion relacion = (Relacion) super.getGuardable();
		
		try 
		{
			relacion.setAtributos(atributos);
			relacion.setEntidadesRol(entidRoles);
			relacion.setNombre(nombre);
			relacion.setTipo(tipo);
		}
		//ninguna de estas exceptions podría pasar ya que se cuando se pidieron los datos eran válidos.
		// tener cuidado con el de las entidades externas ya q si se la borra del modelo, ahí si podría haber problemas.
		catch (AtributoRepetidoException e) {
			e.printStackTrace();
		} catch (SinNombreException e) {
			e.printStackTrace();
		} catch (RelacionException e) {
			e.printStackTrace();
		}
	
	}

}
